1. Field of the Invention
Embodiments of the present invention relate to data communication. More specifically, certain embodiments of the invention relate to methods, systems, and computer program products for replicating packets of data, and replicating packets of data for multiple output streams.
2. Background Art
Packet forwarding is relaying packets from one node to another in a computer network. The conceptually simplest type of packet forwarding is unicasting: a one-to-one communication—relaying a packet from one location to the next. Some other common types of packet forwarding are one-to-many: for example, broadcasting and multicasting. Broadcasting is forwarding a packet to all of the devices on the network. Multicasting is forwarding the packet to a select group of devices. Some implementations of packet forwarding devices may make multiple copies of the original packet to implement these one-to-many forwarding capabilities. Such implementations may require an excessive amount of memory.
This is especially true in modern high capacity networks, where each network device (such as a packet forwarding device) will handle millions of packets per second. Also, communications devices may have multiple output ports. For performance reasons, replicas of the same packet should be independently and concurrently transmitted via these multiple output ports.
Thus, what is needed is a method to replicate packets to one or more output ports for transmission without consuming undue amounts of processing or memory.